// 创建页面
const path = require("path")
// createPages函数名字固定的的
// createPages放在在gatsby-node.js中创建js文件名（gatsby-node）是固定的。
// function createPages({actions} ) { 
//      const {createPage} = actions
//     //  获取模板路径
//     const template = require.resolve("./src/templates/person.js")
//     console.log(template)
//     // 获取数据
//     const data = [{slug:"zhangsan",name:"张三",age:"20"},{slug:"lisi",name:"李四",age:"30"}]
//     data.forEach((person)=>{
//         createPage({
//             // 模板绝对路径
//             component:template,
//             // 访问地址
//             path:`/person/${person.slug}`,
//             context:person
//         })
//     })
// }
async function createPages({ graphql,actions }) {
    const {createPage} = actions
    // 1.获取模板文件的绝对路径
    const template = require.resolve("./src/templates/article.js")
    // 2.获取页面访问标识
    let { data } = await graphql(`
    query {
        allMarkdownRemark {
          nodes {
            fields {
              slug
            }
          }
        }
    }
    `)
    // 3.创建页面
    data.allMarkdownRemark.nodes.forEach((item)=>{
        createPage({
            component:template,
            path:`/article/${item.fields.slug}`,
            context:{
                slug:item.fields.slug
            }
        })
    })
}
function onCreateNode({ node, actions }) {
    const { createNodeField } = actions
    if (node.internal.type === "MarkdownRemark") {
        const slug = path.basename(node.fileAbsolutePath, ".md");
        createNodeField({
            node,
            name: "slug",
            value: slug
        })
    }
}
module.exports = {
    createPages,
    onCreateNode
}